使用Vue3和Vuelidate进行表单和表单验证

您所在的位置:网站首页 js form表单校验 使用Vue3和Vuelidate进行表单和表单验证

使用Vue3和Vuelidate进行表单和表单验证

#使用Vue3和Vuelidate进行表单和表单验证| 来源: 网络整理| 查看: 265

请参阅我即将出版的关于 Ionic 和 Vue JS 的书

所以上周我做了一个关于使用Vee-Validate和Vue3和Ionic Framework new Vue Components的短视频。

有人问我为什么不使用 Vuelidate?除了我上次需要表单验证之外没有其他具体原因,我使用了Vee-Validate。

所以我在这里所做的是从之前的表单/表单验证帖子中复制相同的示例,但这次使用Vuelidate。

代码在帖子末尾提供,请查看我在 Vue3 和 Ionic Framework](https://www.youtube.com/playlist?list=PL2PY2-9rsgl2uKW0DB5FJ-YRCAG-JuSWN)上的[视频

设置

我们假设你已经有一个 vue3 项目。

安装库

npm install @vuelidate/[email protected] npm install @vuelidate/[email protected]

进入全屏模式 退出全屏模式

由于我使用的是打字稿,因此我需要在shims-vue.d.ts中进行此更改

declare module '@vuelidate/core'; declare module '@vuelidate/validators';

进入全屏模式 退出全屏模式

设置我的表单域

首先在我的组件的脚本区,导入库

import { useVuelidate } from "@vuelidate/core"; import { required, email } from "@vuelidate/validators";

进入全屏模式 退出全屏模式

在设置函数中,让我们定义表单字段。

// set fields and some initial values const fform = reactive({ title: "", body: "", emailAddress: "", gender: "MALE", save: true, });

进入全屏模式 退出全屏模式

接下来,我们将使用我们导入的 vuelidate 中的规则将规则映射到字段。

const rules = { title: { required }, body: { required }, emailAddress: { required, email }, gender: {}, save: {}, };

进入全屏模式 退出全屏模式

我们使用useVuelidate挂钩将所有这些绑定到 Vuelidate 对象。我本来可以使用ref来避免所有这些,但我喜欢使用表单对象而不是一堆字段。

参考和反应:

ref() 接受一个原始值并返回一个反应性和可变的 ref 对象 reactive() 接受一个对象并返回原始的响应式代理 const vv = useVuelidate(rules, { title: toRef(fform, "title"), body: toRef(fform, "body"), emailAddress: toRef(fform, "emailAddress"), gender: toRef(fform, "gender"), save: toRef(fform, "save"), });

进入全屏模式 退出全屏模式

当用户提交表单时,我们需要有一个函数来处理。在这种情况下,我们首先使用vv.value.$touch()触发表单验证;如果有错误,我们退出并且不提交表单。

// handle the submit of the form, only called // if the form is valid const onSubmit = () => { vv.value.$touch(); if (vv.value.$invalid) return; alert("Form Submitted " + JSON.stringify(fform, null, 2)); };

进入全屏模式 退出全屏模式

由于我们使用的是setup方法,因此我们需要返回适当的函数和属性,以便可以在模板中访问它们。

return { router: useRouter(), onSubmit, vv, };

进入全屏模式 退出全屏模式

设置我的表单模板

在我的表单中,我有一些字段,并且由于我使用的是 Ionic 组件,最初我担心我必须做一些额外的工作,但我不必这样做。

我们可以使用从useVuelidate调用返回的vv对象访问与我们创建的字段关联的model;我们以我们的形式使用这些模型

Title

进入全屏模式 退出全屏模式

表格初始值

很棒的是,因为我们正在使用 vue 绑定,所以我们为表单字段设置的初始值通过模型传递给设置输入元素

Gender MALE FEMALE

进入全屏模式 退出全屏模式

[Alt](https://res.cloudinary.com/practicaldev/image/fetch/s--awHAvILf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/imvm0dqcacy5fn7kfi2y.png)

见上面我们设置表单对象的地方

表格提交

提交表单没有什么特别的神奇之处,我们只是调用我们的函数并检查错误。如果出现错误,我们可以渲染它们

...

进入全屏模式 退出全屏模式

表单字段错误

表单字段具有与之关联的错误对象,我们可以使用字段名称和 vuelidate 对象来访问错误。

下面的代码呈现与名为title的输入元素关联的第一条错误消息

{{ vv?.title?.$errors[0]?.$message }}

进入全屏模式 退出全屏模式

总结

这只是对 Vuelidate 的快速浏览,我将更深入地使用表单和表单验证功能以及我正在处理的模态表单视频、博客文章。在该示例中,我们将使用嵌套对象和更复杂的 UI,因此看看它是如何工作的应该会很有趣。

源代码 GitHub 徽标aaronksaunders/ionic-vue-validation-app 显示 vue3 和 ionic 表单验证示例的示例应用程序 离子-vue-验证-应用程序

显示 vue3 和 ionic 表单验证示例的示例应用程序

vuelidate -https://vuelidate-next.netlify.app/#installation

vee-validate -https://vee-validate.logaretm.com/v4/

离子 Vue -https://ionicframework.com/blog/announcing-the-new-ionic-vue-beta/

查看 IONIC VUE3 视频 https://www.youtube.com/playlist?listu003dPL2PY2-9rsgl2uKW0DB5FJ-YRCAG-JuSWN

[](https:// raw.githubusercontent.com/aaronksaunders/ionic-vue-validation-app/master/screenshots/using%20vuelidate.png)

在 GitHub 上查看

离子 Vue 视频

Alt

点击查看播放列表



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3